/*********************************************************************************************************
 *
 *	模块名称 :cd命令执行模块
 *	文件名称 :Cd_Command.c
 *	版    本 : V1.0
 *	说    明 :本模块在用户输入cd指令后开始执行。
 *
 *              注意事项：
 *                务必将编辑器的缩进参数和TAB设置为4来阅读本文件，以使得代码显示整齐。
 *
 *	修改记录 :
 *		版本号       日期         作者        说明
 *		V1.0     2022-05-09     zrx
 *
 *	Copyright (C), 2022-2030, xxxx
 *
 *********************************************************************************************************/

#include "../include/Cd_Command.h"

/*********************************************************************************************************
 *	函 数 名:Cd_Command
 *	功能说明:执行cd相关命令。
 *	形    参:string pointer array User content
 *  全局变量:无
 *	返 回 值:success 0    false -1
 *********************************************************************************************************/

int Cd_Command(char *abuf[20])
{
    int num = 0;
    for (size_t i = 1; i < 20 && abuf[i]; i++) // cd命令只能有命令与另一个参数
    {
        if (++num > 1)
        {
            printf("bash: cd: too many arguments\n");
            return -1;
        }
    }
    if (num) //判断cd后有无其他指令
    {
        int cd = chdir(abuf[1]);
        if (cd == -1)
        {
            printf("bash: cd: %s: No such file or directory\n", abuf[1]);
            return -1;
        }

        return 0;
    }
    else
    {
        int cd = chdir("/home/linux/");
        if (cd == -1)
        {
            perror("cd fail");
            return -1;
        }
        return 0;
    }
}